package com.jingdianjichi.oss.adapter;

import com.jingdianjichi.oss.entity.FileInfo;
import org.springframework.web.multipart.MultipartFile;

import java.io.InputStream;
import java.util.List;

public interface StorageAdapter {


    /**
     * 创建桶
     */
    public void createBuket(String bucketName);

    /**
     * 上传文件
     */
    public void uploadFile(MultipartFile file, String bucketName, String fileName);


    /**
     * 获取所有桶
     * @return 桶名
     * @throws Exception 异常
     */
    public List<String> getAllBuckets();

    /**
     * 获得当前桶下的 文件
     * @param buket 名称
     * @return 文件
     * @throws Exception 异常
     */

    public List<FileInfo> getAllFiles(String buket);

    /**
     * 下载文件
     * @param bucketName 桶
     * @param objectName 文件名
     * @return  文件
     * @throws Exception 错误
     */
    public InputStream downloadFile(String bucketName, String objectName);


    /**
     * 删除文件
     * @param bucketName 桶
     */
    public void deleteBucket(String bucketName);
    /**
     * 删除文件
     * @param bucketName 桶
     * @param objectName 文件
     */
    public void deleteFile(String bucketName, String objectName) ;

    String getUrl(String bucketName, String fileName);
}
